﻿using Credinka.Ayni.SEA.EN;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Credinka.Ayni.SEA.AD
{
    public class adGrupo : adGeneral
    {
        public adGrupo(SqlConnection con)
        {
            conexionGeneral = con;
        }

        public List<enGrupo> fListar(enGrupo poenGrupo)
        {
            List<enGrupo> loenGrupo = null;
            SqlCommand cmd = new SqlCommand("sGEN_ListarGrupo", conexionGeneral);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piNumeroPagina", SqlDbType.Int).Value = poenGrupo.NumeroPagina;
            cmd.Parameters.Add("@piNumeroRegistros", SqlDbType.Int).Value = poenGrupo.NumeroRegistros;
            cmd.Parameters.Add("@pvNombre", SqlDbType.VarChar).Value = poenGrupo.Nombre;
            cmd.Parameters.Add("@pvDescripcion", SqlDbType.VarChar).Value = poenGrupo.Descripcion;
            cmd.Parameters.Add("@piCodigoEstado", SqlDbType.Int).Value = poenGrupo.CodigoEstado;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdMenu = drd.GetOrdinal("iIdGrupo");
                int pos_Nombre = drd.GetOrdinal("vNombre");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");
                int pos_Estado = drd.GetOrdinal("Estado");
                loenGrupo = new List<enGrupo>();
                enGrupo oenGrupo;
                while (drd.Read())
                {
                    oenGrupo = new enGrupo();
                    oenGrupo.IdGrupo = drd.GetInt32(pos_IdMenu);
                    oenGrupo.Nombre = (drd.IsDBNull(pos_Nombre) ? "" : drd.GetString(pos_Nombre));
                    oenGrupo.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenGrupo.CodigoEstado = drd.GetInt32(pos_CodigoEstado);
                    oenGrupo.entDescripcion = new enDescripcion();
                    oenGrupo.entDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    loenGrupo.Add(oenGrupo);
                }
            }
            return (loenGrupo);
        }

        public List<enGrupo> fListarGrupoPorNombre(string pNombre) {
          List<enGrupo> loenGrupo = null;
          SqlCommand cmd = new SqlCommand("sGEN_ListarGrupoPorNombre", conexionGeneral);
          cmd.CommandType = CommandType.StoredProcedure;
          cmd.Parameters.Add("@pvNombre", SqlDbType.VarChar).Value = pNombre;
          SqlDataReader drd = cmd.ExecuteReader();
          if (drd != null) {
            int pos_IdMenu = drd.GetOrdinal("iIdGrupo");
            int pos_Nombre = drd.GetOrdinal("vNombre");
            int pos_Descripcion = drd.GetOrdinal("vDescripcion");
            int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");
            loenGrupo = new List<enGrupo>();
            enGrupo oenGrupo;
            while (drd.Read()) {
              oenGrupo = new enGrupo();
              oenGrupo.IdGrupo = drd.GetInt32(pos_IdMenu);
              oenGrupo.Nombre = (drd.IsDBNull(pos_Nombre) ? "" : drd.GetString(pos_Nombre));
              oenGrupo.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
              oenGrupo.CodigoEstado = drd.GetInt32(pos_CodigoEstado);
              loenGrupo.Add(oenGrupo);
            }
          }
          return (loenGrupo);
        }


        public int fRegistrar(enGrupo poenGrupo)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sGEN_RegistrarGrupo", conexionGeneral);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@pvNombre", SqlDbType.VarChar).Value = poenGrupo.Nombre;
            cmd.Parameters.Add("@pvDescripcion", SqlDbType.VarChar).Value = poenGrupo.Descripcion;
            cmd.Parameters.Add("@piCodigoEstado", SqlDbType.Int).Value = poenGrupo.CodigoEstado;
            cmd.Parameters.Add("@pvAudNombreUsuarioCreacion", SqlDbType.VarChar).Value = poenGrupo.AudNombreUsuarioCreacion;
            cmd.Parameters.Add("@pvAudIPCreacion", SqlDbType.VarChar).Value = poenGrupo.AudIPCreacion;
            cmd.Parameters.Add("@pvAudMacCreacion", SqlDbType.VarChar).Value = poenGrupo.AudMacCreacion;

            N = Convert.ToInt32(cmd.ExecuteScalar());
            return N;
        }
    }
}
